Electronic computing devices—such as laptop computers, tablets, smart phones, and desktop computer—include operating systems or other software applications that manage resource usage on those devices. Typically, an operating system application and/or a specialized management module on a computing device allocates memory resources, processing resources, and various other resources to applications operating on the device. For example, the operating system may allocate memory resources to an application being initiated on the computing device from a pool of available memory resources.
Consumer devices typically include numerous different applications, and many of these applications are executed simultaneously. As the number of applications executing simultaneously on a computing device increases, the memory available to each of these applications decreases due to the physical limits of the computing device's memory. Eventually, if enough applications are running at the same time, the computing device runs out of available memory, resulting in application crashes, slowdowns, lost data, and various other inconveniences. Thus, managing how a finite amount of memory is allocated to numerous applications operating simultaneously on a computing device remains a challenge for device manufacturers.